package xyz.heyaoshare.core.service.system;

import com.mybatisflex.core.service.IService;
import xyz.heyaoshare.core.controller.system.menu.vo.req.*;
import xyz.heyaoshare.core.controller.system.menu.vo.resp.MenuDetailRespVO;
import xyz.heyaoshare.core.controller.system.menu.vo.resp.MenuTreeRespVO;
import xyz.heyaoshare.core.entity.system.Menu;

import java.util.List;


/**
 * 菜单 Service
 * @author YueHe
 * @version 0.0.1
 * @since 2025/6/25 下午2:02
 */
public interface MenuService extends IService<Menu> {

    /**
     * 新增菜单
     *
     * @param reqVO 新增对象
     * @return 新增状态
     */
    Boolean insert(MenuInsertReqVO reqVO);

    /**
     * 菜单列表
     *
     * @param reqVO 请求参数
     * @return 菜单列表
     */
    List<MenuTreeRespVO> selectTreeList(MenuListReqVO reqVO);

    /**
     * 菜单详情
     *
     * @param reqVO 请求参数
     * @return 详情数据
     */
    MenuDetailRespVO selectDetail(MenuDetailReqVO reqVO);

    /**
     * 删除菜单
     *
     * @param reqVO 请求数据
     * @return 删除状态
     */
    Boolean delete(MenuDeleteReqVO reqVO);

    /**
     * 更新菜单
     *
     * @param reqVO 更新数据
     * @return 更新状态
     */
    Boolean updateData(MenuUpdateReqVO reqVO);

}